home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C / Applications / µSim 1.1 / source / Globals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-26  |  7.4 KB  |  436 lines  |  [TEXT/CWIE]

  1. #ifndef __ICTYPES__
  2. #include <ICTypes.h>
  3. #endif
  4.  
  5. #ifndef __HFABUTILSCOMMON__
  6. #include    "UtilsSys7.h"
  7. #endif
  8.  
  9. #if GENERATINGCFM
  10.  
  11.    enum {
  12.       myUppListClickLoopProcInfo = kRegisterBased
  13.       | RESULT_SIZE(kNoByteCode)
  14.       | REGISTER_RESULT_LOCATION(kCCRegisterZBit)
  15.    };
  16.    
  17.    #define MyNewListClickLoopProc(userRoutine)  \
  18.       (ListClickLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), \
  19.       myUppListClickLoopProcInfo, GetCurrentISA())
  20.          
  21.    #define kListClickLoopTrue false
  22.    #define kListClickLoopFalse true
  23.       
  24. #else
  25.  
  26.    #define MyNewListClickLoopProc(userRoutine)  \
  27.       (ListClickLoopUPP)(userRoutine)
  28.          
  29.    #define kListClickLoopTrue true
  30.    #define kListClickLoopFalse false
  31.  
  32. #endif
  33.  
  34.  
  35. /* balloon help */
  36. enum balllll {
  37. kBalloons_Anim = 1010,
  38. kBalloons_Regs,
  39. kBalloons_MPrg,
  40. kBalloons_Dump,
  41. kBAnim_ALatch = 1,
  42. kBAnim_BLatch,
  43. kBAnim_MAR,
  44. kBAnim_MBR,
  45. kBAnim_AMUX,
  46. kBAnim_Shifter,
  47. kBAnim_Inc,
  48. kBAnim_MMUX,
  49. kBAnim_MPC,
  50. kBAnim_ALU,
  51. kBAnim_MSL,
  52. kBAnim_MIR,
  53. kBAnim_Regs,
  54. kBAnim_CStore,
  55. kBAnim_MAP,
  56. kBRegs_Base = 1,
  57. kBRegs_PC,
  58. kBRegs_AC,
  59. kBRegs_SP,
  60. kBRegs_BP,
  61. kBRegs_IR,
  62. kBRegs_A,
  63. kBRegs_B,
  64. kBRegs_C,
  65. kBRegs_D,
  66. kBRegs_E,
  67. kBRegs_X12,
  68. kBRegs_X11,
  69. kBRegs_Lo8,
  70. kBMPr_ABus = 1,
  71. kBMPr_BBus,
  72. kBMPr_CBus,
  73. kBMPr_MAR,
  74. kBMPr_MBR,
  75. kBMPr_BusReq,
  76. kBMPr_Shifter,
  77. kBMPr_Branch,
  78. kBMPr_ALU,
  79. kBMPr_ABusRadio,
  80. kBMPr_MBRRadio,
  81. kBMPr_MAP,
  82. kBMPr_BranchTo,
  83. kBMPr_Comment,
  84. kBMPr_CommentsList,
  85. kBMPr_ConvInstrList,
  86. kBDump_Contents = 1,
  87. kBDisasm_Contents,
  88. kBIO_Contents
  89. };
  90.  
  91. enum {
  92. khiliteGhost = 50    /* defined in Inside Mac V, but NOT in QuickDraw.h: why??? */
  93. };
  94.  
  95. enum suoni {
  96. kSndPinzatrice = 256
  97. };
  98.  
  99. /* Menu list resource IDs */
  100. enum {
  101. kRes_Menu_HMemory = 1,
  102. kRes_Menu_HRegs,
  103. kRes_Menu_HDisasm,
  104. kRes_Menu_HDump,
  105. kRes_Menu_PopDump = 264,
  106.  
  107. kRes_Menu_Windows = 131,
  108. kRes_Menu_Control,
  109. kRes_Menu_Assembler
  110. };
  111.  
  112. enum {
  113. kD_Edit = 1,
  114. kD_Disasm = 3,
  115. kD_DisasmFrom,
  116. kD_DumpFrom
  117. };
  118.  
  119. enum {
  120. kMItem_About__Simulato = 1
  121. };
  122.  
  123. enum fileitems {
  124. kMItem_New = 1,
  125. kMItem_Open_Control_St,
  126. kMItem_Close = 4,
  127. kMItem_Save_Control_St,
  128. kMItem_Save_Control_St2,
  129. kMItem_Save_CS_Stationery,
  130. kMItem_Revert_to_Saved,
  131. kMItem_HMem = 10,
  132. kMItem_HRegs,
  133. kMItem_Page_Setup = 13,
  134. kMItem_Print,
  135. kMItem_Prefs = 16,
  136. kMItem_Quit = 18
  137. };
  138.  
  139. enum {
  140. kMItem_Insert = 9,
  141. kMItem_Delete,
  142. kMItem_FirstInternet = 12,
  143. kMItem_CopyBugReport = 12,
  144. kMItem_CopyEmailAddr,
  145. kMItem_CopyWWWURL,
  146. kMItem_SendEmail = 16,
  147. kMItem_ShowWWWPage,
  148. kMItem_LastInternet = kMItem_ShowWWWPage
  149. };
  150.  
  151. enum windowsitems {
  152. kMItem_Animation = 1,
  153. kMItem_Registers,
  154. kMItem_IO,
  155. kMItem_Microprogram,
  156. kMItem_Disasm,
  157. kMItem_Dump
  158. };
  159.  
  160. enum hieritems {
  161. kMItem_Open = 1,
  162. kMItem_Save_As
  163. };
  164.  
  165. enum controlitems {
  166. kMItem_Go = 1,
  167. kMItem_Stop,
  168. kMItem_StepSub = 4,
  169. kMItem_StepMicro,
  170. kMItem_StepInstr,
  171. kMItem_ResetMem = 8,
  172. kMItem_ResetRegs,
  173. kMItem_Disasmfrom = 11,
  174. kMItem_Dumpfrom,
  175. kMItem_SelectCurMPC
  176. };
  177.  
  178. enum asmitems {
  179. kMItem_Assemble_file = 1,
  180. kMItem_AsmPrefs = 3
  181. };
  182.  
  183. /* sizes */
  184. enum sizes {
  185. kNUMOFPARTS = 10,
  186. kNUMOFSTATEPARTS = 23,
  187. kSIZE_RAM = 128*1024L,
  188. kSIZE_ASSMEM = 256,
  189. kSIZE_CSMEM = 512
  190. };
  191.  
  192. /* registers */
  193. enum registers {
  194. kREG_PC = 0,
  195. kREG_AC,
  196. kREG_SP,
  197. kREG_BP,
  198. kREG_IR,
  199. kREG_A,
  200. kREG_B,
  201. kREG_C,
  202. kREG_D,
  203. kREG_E,
  204. kREG_EXT12,
  205. kREG_EXT11,
  206. kREG_LOW8,
  207. kREG_ZERO,
  208. kREG_ONE,
  209. kREG_MINUS1,
  210. kNUMOFREGS
  211. };
  212.  
  213. enum micstatus {
  214. kST_STOPPED = 0,
  215. kST_GOING,
  216. kST_STEPASM,
  217. kST_STEPMPROG,
  218. kST_STEPSUBCYC
  219. };
  220.  
  221. /* resources types, file types, creator */
  222. enum filetypes {
  223. krInstructions = 'OPCO',
  224. krHandlers = 'HAND',
  225. kFTY_CSTORE = 'µPRG',
  226. kFTY_RAM = 'µRAM',
  227. kFCR_MINE = 'µSIM',
  228. kFTY_CSTOREPAD = 'sPRG',
  229. kFTY_REG = 'µREG'
  230. };
  231.  
  232. /* save selectors */
  233. enum savesel {
  234. kGOT_SAVE = 0,
  235. kGOT_SAVEAS,
  236. kGOT_SAVESTATIONERY
  237. };
  238.  
  239. enum defaultregs {
  240. kPCStart = 8192,
  241. kStackBase = 65536-4098,
  242. kStackSize = 1024,
  243. kPCExitToShell = 4096,
  244. kIllegalVector = 3,
  245. kIllegalHandler = 0x300
  246. };
  247.  
  248. enum myAEIDs {
  249. kAEmySignalIO = 'I/O '
  250. };
  251.  
  252. enum editdialogstrs {
  253. kInThe = 0,
  254. kAtMem,
  255. kValueFollow = 130
  256. };
  257.  
  258. enum {
  259. kCurPrefsVersion = 5
  260. };
  261.  
  262. enum {
  263. kfIsStationery = (1 << 11)
  264. //fNameLocked = (1 << 12)
  265. };
  266.  
  267.  
  268. /* ======================================================= */
  269.  
  270. union u_mir {
  271.     struct {
  272.         unsigned    amux    : 1;
  273.         unsigned    cond    : 2;
  274.         unsigned    alu        : 2;
  275.         unsigned    shift    : 2;
  276.         unsigned    mbr        : 1;
  277.         unsigned    rd        : 1;
  278.         unsigned    wr        : 1;
  279.         unsigned    mar        : 1;
  280.         unsigned    dsc        : 1;
  281.         unsigned    a        : 4;
  282.         unsigned    b        : 4;
  283.         unsigned    c        : 4;
  284.         unsigned    map        : 1;
  285.         unsigned    addr    : 7;
  286.         } bits;
  287.     unsigned long cstore;
  288.     };
  289.  
  290. typedef union u_mir un_mir;
  291.  
  292.  
  293. #if defined(powerc) || defined (__powerc)
  294. #pragma options align=mac68k
  295. #endif
  296. struct ROpcode {
  297.     OSType    instr;
  298.     Byte    length;
  299.     Byte    classe;
  300.     Byte    offsetHB;
  301.     Byte    offsetLB;
  302.     Byte    lastHB;
  303.     Byte    lastLB;
  304.     };
  305. #if defined(powerc) || defined(__powerc)
  306. #pragma options align=reset
  307. #endif
  308.  
  309. typedef struct ROpcode ROpcode;
  310. typedef ROpcode *ROpcodePtr;
  311. typedef ROpcodePtr *ROpcodeHandle;
  312.  
  313. #if defined(powerc) || defined (__powerc)
  314. #pragma options align=mac68k
  315. #endif
  316. struct ROpcodeDisasm {
  317.     OSType    instr;
  318.     Byte    length;
  319.     Byte    classe;
  320.     short    first;
  321.     short    last;
  322.     };
  323. #if defined(powerc) || defined(__powerc)
  324. #pragma options align=reset
  325. #endif
  326.  
  327. typedef struct ROpcodeDisasm ROpcDisasm;
  328. typedef ROpcDisasm *ROpcDisasmPtr;
  329. typedef ROpcDisasmPtr *ROpcDisasmHandle;
  330.  
  331. #ifndef __FABCURSORBALLOON__
  332. #include    "CursorBalloon.h"
  333. #endif
  334.  
  335. typedef struct {
  336.     FabWindowPtr    docWindow;
  337.     TEHandle        docTE;
  338.     ControlHandle    docVScroll;
  339.     ControlHandle    docHScroll;
  340. } DocumentIORecord, *DocumentIOPeek;
  341.  
  342.  
  343. #if PRAGMA_ALIGN_SUPPORTED
  344. #pragma options align=mac68k
  345. #endif
  346. struct myprefs {
  347.     short    prefsVersion;
  348.     short    RegsBase;
  349.     Rect    IOUserState;
  350.     Point    AnimTopLeft;
  351.     Point    RegsTopLeft;
  352.     Point    MProgTopLeft;
  353.     Point    DumpTopLeft;
  354.     Point    DisasmTopLeft;
  355.     Point    generalPrefsTL;
  356.     Point    asmPrefsTL;
  357.     Point    editValueTL;
  358.     Point    aboutTL;
  359.     Point    creditsTL;
  360.     ZoomFactorRec    zfr;
  361.     unsigned short    DefPCValue;
  362.     unsigned short    DefSPValue;
  363.     short    DefStkSize;
  364.     short    DumpHeight;
  365.     short    DumpScrollVal;
  366.     short    DisasmHeight;
  367.     short    DisasmScrollVal;
  368.     Boolean AnimVisible;
  369.     Boolean    RegsVisible;
  370.     Boolean    IOVisible;
  371.     Boolean    DumpVisible;
  372.     Boolean    DisasmVisible;
  373.     Boolean infLoopsDetect;
  374.     Boolean    remembWind;
  375.     Boolean    NeXTScroll;
  376.     };
  377. #if PRAGMA_ALIGN_SUPPORTED
  378. #pragma options align=reset
  379. #endif
  380.  
  381. /************************************************************/
  382. #pragma internal on
  383.  
  384. extern EventRecord    gMyEvent;
  385. //extern GrowZoneUPP        gMyGrowZoneUPP;
  386. extern ListClickLoopUPP    gInstrClikLoopUPP;
  387. extern ListClickLoopUPP    gCommentClikLoopUPP;
  388. extern ListClickLoopUPP    gSwitchCursClikLoopUPP;
  389. extern ICInstance    gICinst;
  390. extern TEHandle    gTheInput;
  391. extern UInt32    gSleep;
  392. extern CursHandle    gWatchHandle, gIBeamHandle, gPlusHandle;
  393.  
  394. extern Ptr    gMMemory;
  395. extern Ptr    gAssMemory;
  396. extern union u_mir *gCsMemory;
  397.  
  398. extern MenuRef    gMenu_Apple;
  399. extern MenuRef    gMenu_File;
  400. extern MenuRef    gMenu_Edit;
  401. extern MenuRef    gMenu_Windows;
  402. extern MenuRef    gMenu_Control;
  403. extern MenuRef    gMenu_Assembler;
  404. extern MenuRef    gPopMenu;
  405.  
  406.  
  407. extern WindowPtr    gWPtr_Animation;
  408. extern WindowPtr    gWPtr_Dump;
  409. extern WindowPtr    gWPtr_Microprogram_Ed;
  410. extern WindowPtr    gWPtr_Registers;
  411. extern WindowPtr    gWPtr_Disasm;
  412. extern WindowPtr    gWPtr_IO;
  413.  
  414. extern DocumentIORecord gIODoc;
  415.  
  416. extern struct myprefs gPrefs;
  417.  
  418. extern short    gRegs[kNUMOFREGS];
  419. extern short    gParts[kNUMOFPARTS];
  420.  
  421. extern unsigned short    gILCBase;
  422. extern ICError    gICerr;
  423. extern short    gRstatus;
  424. extern short    gSubclk;
  425. extern Boolean    gDoneFlag;
  426. extern Boolean  gInTheForeground;
  427. extern Boolean    gHasColorQD, gPwrManagerIsPresent;
  428. extern Boolean gDragManagerActive;
  429. extern Boolean    gDoNotOverwritePrefs;
  430. #pragma internal reset
  431.  
  432. //====================================================================
  433.  
  434. #define PTR2MEMWORD(address)    ((unsigned long)((Ptr)(address) - gMMemory) >> 1)
  435.  
  436.